Parallel processing is a widely used method for supplying a great amount of computational power with the benefits of both reduced costs and higher efficiency. Tasks which take advantage of the real-time response and/or the processing of immense data sets of parallel processing include: weather forecasting, map-making, aerodynamics simulations, chemical reaction simulations, image enhancement and analysis, air traffic control, robotic vision and speech recognition. In all of these systems, a multiplicity of processors are interconnected, each performing various functions simultaneously. In order to operate such a system, there is a need to network the multiplicity of processors with other devices such as memory modules, as an example.
In such an interconnection scheme, it is necessary to provide fast and flexible communications between the connected nodes (connections). The more nodes attached to the network, the greater the difficulty in providing interconnection between all of the nodes. As the number of nodes in a network increase, it becomes prohibitive for direct connection from one node to the other. In the case of parallel processing, to provide direct connections between each of the processors with each of the memory modules is unrealistic from both economic and design choice perspectives.
Another desirable aspect of a network scheme is to be fault tolerant. This requires that if any link in the network goes down, there is a backup network or a parallel network operating to ensure that network traffic and communications continue.
Many networks, such as the omega, baseline, delta (A=B=2), generalized cube, indirect binary N-cube, shuffle exchange and SW-Banyan (S=F=2) are used in parallel processing network systems. All of these networks are topologically equivalent, as stated by Sigel, H. J., Hsu, W. T. and Jeng, M. in "An Introduction to the Multistage Cube Family of Interconnection Networks," Journal of Supercomputing, Vol. 1, No. 1, 1987, which is incorporated by reference herein.
Networks use switching boxes to effectuate access by all processors of all devices connected to the network. Switching boxes of appropriate design and programming for a given network design are known and understood by network designers.